package liurong.driver.time;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.format.DateTimeFormat;
import org.junit.Test;

public class JodaTest {

	@Test
	public void fun2() {
		// 伦敦当前时间
		DateTime dt1 = new DateTime(DateTimeZone.forID("UTC"));
		System.out.println("joda伦敦当前时间：" + dt1.toString("yyyy-MM-dd HH:mm:ss"));

		// 美国当前时间
		DateTime dateTime = new DateTime(DateTimeZone.forID("America/New_York"));
		System.out.println("joda美国当前时间：" + dateTime.toString("yyyy-MM-dd HH:mm:SS"));

		// 北京当前时间
		DateTime dt2 = new DateTime(DateTimeZone.forID("Asia/Shanghai"));
		System.out.println("joda北京当前时间：" + dt2.toString("yyyy-MM-dd HH:mm:ss"));

		// 北京当前时间
		DateTime dt3 = new DateTime(DateTimeZone.forID("Asia/Kolkata"));
		System.out.println("Asia/Kolkata当前时间：" + dt3.toString("yyyy-MM-dd HH:mm:ss"));

	}

	@Test
	public void fun3() throws Exception {
		DateTime parseDateTime = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:SS").withZone(DateTimeZone.forID("UTC"))
				.parseDateTime("2017-01-30 00:00:00");
		System.out.println("jodaUTC当前时间(0时区)：" + parseDateTime.toString("yyyy-MM-dd HH:mm:SS"));
		Date date = parseDateTime.toDate();

		// 西五区
		DateTime dateTime1 = new DateTime(date.getTime(), DateTimeZone.forID("America/New_York")); // 2017-09-30
		System.out.println("joda美国当前时间(西五区时区)：" + dateTime1.toString("yyyy-MM-dd HH:mm:SS"));

		// 东八区
		DateTime dateTime = new DateTime(date.getTime(), DateTimeZone.forID("Asia/Shanghai")); // 2017-09-30
		System.out.println("joda北京当前时间：" + dateTime.toString("yyyy-MM-dd HH:mm:SS"));

	}

	@Test
	public void fun4() throws Exception {

		Date date = new Date();
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
		System.out.println("jdkUTC当前时间:" + simpleDateFormat.format(date));

		SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat3.setTimeZone(TimeZone.getTimeZone("America/New_York"));
		System.out.println("jdk美国纽约当前时间：" + simpleDateFormat3.format(date));

		SimpleDateFormat simpleDateFormat4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat4.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
		System.out.println("jdk美国洛杉矶当前时间：" + simpleDateFormat4.format(date));

		SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
		System.out.println("jdk北京当前时间：" + simpleDateFormat2.format(date));

		SimpleDateFormat simpleDateFormat5 = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat5.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
		System.out.println("Asia/Kolkata当前时间：" + simpleDateFormat5.format(date));
	}

	@Test
	public void fun5() throws Exception {
		SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat3.setTimeZone(TimeZone.getTimeZone("UTC"));
		Date date = simpleDateFormat3.parse("2018-08-06 00:00:00");
		System.out.println(date);
		System.out.println(date.getTime());

		SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
		System.out.println("北京当前时间：" + simpleDateFormat2.format(date));

		SimpleDateFormat simpleDateFormat4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
		simpleDateFormat4.setTimeZone(TimeZone.getTimeZone("America/New_York"));
		System.out.println("America/New_York时区当前时间：" + simpleDateFormat4.format(date));
	}
}
